package com.sh.business.domain.vo;

import java.math.BigDecimal;
import com.sh.business.domain.User;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.sh.common.excel.annotation.ExcelDictFormat;
import com.sh.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 用户信息视图对象 bms_user
 *
 * @author ruoyi
 * @date 2024-10-09
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = User.class)
public class UserVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 用户ID
     */
    @ExcelProperty(value = "用户ID")
    private Long userId;

    /**
     * 昵称
     */
    @ExcelProperty(value = "昵称")
    private String userName;

    /**
     * 密码
     */
    private String password;

    /**
     * 钱包地址
     */
    @ExcelProperty(value = "钱包地址")
    private String walletAddress;

    /**
     * aleo地址
     */
    private String aleoAddress;

    /**
     * 推荐人
     */
    @ExcelProperty(value = "推荐人")
    private Long parentId;

    /**
     * 推荐人钱包地址
     */
    @ExcelProperty(value = "推荐人钱包地址")
    private String parentWalletAddress;

    /**
     * 级别(普通用户：0、区代理：1、县代理：2、市代理：3、省代理：4、全国代：5、全球代：6)
     */
    @ExcelProperty(value = "级别(普通用户：0、区代理：1、县代理：2、市代理：3、省代理：4、全国代：5、全球代：6)", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_user_type")
    private Integer level;

    /**
     * 本人业绩
     */
    @ExcelProperty(value = "本人业绩")
    private BigDecimal selfAchievement;

    /**
     * 团队业绩
     */
    @ExcelProperty(value = "团队业绩")
    private BigDecimal teamAchievement;

    /**
     * 直推业绩
     */
    @ExcelProperty(value = "直推业绩")
    private BigDecimal directPushAchievement;

    /**
     * 算力
     */
    @ExcelProperty(value = "算力")
    private BigDecimal computility;

    /**
     * usdt
     */
    @ExcelProperty(value = "usdt")
    private BigDecimal usdt;

    /**
     * 复购usdt
     */
    private BigDecimal repurchaseUsdt;

    /**
     * aleo
     */
    @ExcelProperty(value = "aleo")
    private BigDecimal aleo;

    /**
     * scr
     */
    @ExcelProperty(value = "scr")
    private BigDecimal scr;

    /**
     * 祖级列表
     */
    @ExcelProperty(value = "祖级列表")
    private String ancestors;

    /**
     * 直推入金列表
     */
    @ExcelProperty(value = "直推入金列表")
    private String directPushDeposit;

    /**
     * usdt提现权限
     */
    @ExcelProperty(value = "usdt提现权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean hasUsdtWithdraw;

    /**
     * aleo提现权限
     */
    @ExcelProperty(value = "aleo提现权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean hasAleoWithdraw;

    /**
     * scr提现权限
     */
    @ExcelProperty(value = "scr提现权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean hasScrWithdraw;

    /**
     * 分红权限
     */
    @ExcelProperty(value = "分红权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean hasDividend;

    /**
     * szpn转划转szpn权限
     */
    @ExcelProperty(value = "szpn转划转szpn权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean hasSzpnToTransferSzpn;

    /**
     * 转账权限
     */
    @ExcelProperty(value = "转账权限", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean hasTransfer;

    /**
     * 闪对权限
     */
    private Boolean hasConvert;

    /**
     * 是否新会员
     */
    @ExcelProperty(value = "是否新会员", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean isNew;

    /**
     * 激活状态（1激活 0未激活）
     */
    @ExcelProperty(value = "激活状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean isActive;

    /**
     * 帐号状态（1正常 0停用）
     */
    @ExcelProperty(value = "帐号状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "biz_status_type")
    private Boolean status;

    /**
     * 签名文件
     */
    private String signatureUrl;

    /**
     * 地区
     */
    private String location;

    /**
     * 标签
     */
    private String mark;

    /**
     * 注册时间
     */
    private Date createTime;

    /**
     * 购买时间
     */
    private Date purchaseTime;

    /**
     * 用户级别-新版
     */
    private Integer userLevel;

    /**
     * 节点标识
     */
    private Integer nodeFlag;

    /**
     * 是否是节点
     */
    private Boolean isNode;

    /**
     * 购买算力
     */
    private BigDecimal purchaseComputility;

    /**
     * 可用szpn
     */
    private BigDecimal availableSzpn;

    /**
     * 锁仓szpn
     */
    private BigDecimal freezeSzpn;

    /**
     * 理财szpn
     */
    private BigDecimal financingSzpn;

    /**
     * 划转szpn
     */
    private BigDecimal transferSzpn;
}
